package pri.damai.xiaowu.auth.manager;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

/**
 * 消息规则
 * @Desc
 * @Author DaMai
 * @Date 2021/10/20 9:29
 * 但行好事，莫问前程。
 */
@Data
@Component
@ConfigurationProperties("sms.rule")
public class SmsRuleProperties {

    /** 规则实体存放的key */
    private String ruleRedisKey;
    /** 失效时间,单位：分钟 */
    private Integer expireTime;
    /** 单位时间内发送次数规则 */
    private String limitTimeTimes = "30,3";
    /** 单次发送时间间隔 */
    private Integer limitSingleTime = 60;

    /**
     * 单位时间
     * @apiNote [附加描述]
     * @return java.lang.Integer
     * @author DaMai
     * @date 2021/10/20 10:11
     */
    public Integer getLimitTime() {
        return Integer.valueOf(getTimeTimes().getFirst());
    }

    /**
     * 单位时间内发送次数
     * @apiNote [附加描述]
     * @return java.lang.Integer
     * @author DaMai
     * @date 2021/10/20 10:11
     */
    public Integer getLimitTimes() {
        return Integer.valueOf(getTimeTimes().getLast());
    }


    private LinkedList<String> getTimeTimes() {
        String[] split = limitTimeTimes.split(",");
        return new LinkedList<>(Arrays.asList(split));
    }
}
